Method and system for program guide delivery

ABSTRACT

Systems and methods are provided for controlling the content information sent to a user. A database includes content information and user subscription information. The content information is organized by a server for each user based on the user subscription information. The server is in communication with a user terminal and sends the content information to the user terminal.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is related to and claims priority to U.S. Provisional Application No. 60/222,804, and entitled, “Universal Digital Tuner System for Personal Computers.” This application is related to two applications filed simultaneously herewith entitled, “Method and System for Encrypting and Storing Content to a User,” and “Method and System for Controlling Content to a User.” The above applications are hereby incorporated by reference herein in their entirety.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The invention relates to a system and method for delivering content information to a user.

[0004] 2. Description of the Background

[0005] Media content is sent to users in a variety of methods. For example, terrestrial television signals are broadcast through the airwaves using a radio frequency signal, which is received by a user with a receiver connected to a television display. A terrestrial television receiver includes an antenna for receiving the signal, which must be placed in a position where it can receive the signals. Television reception from a radio frequency signal is often poor if the user is located far from the signal broadcast or if the user has difficulty placing the antenna in the correct position to receive the signal. Radio frequency signals received by a television set are also sent to all television receivers in a geographic area, and therefore it is not possible to control which users have access to specific media content. It is also difficult to monitor what content users are viewing.

[0006] Cable broadcasts employ a path to a user terminal without many of the interference of terrestrial television. Satellite offers a digital representation of a signal with more of a line-of-sight path to the user terminal. As used herein, a “user terminal” is an electronic device for receiving media content, such as a television, personal computer (“PC”) or set top box. Cable and satellite broadcasters are also able control which users have access to specific content. Cable and satellite broadcast signals may be encrypted, or “scrambled,” such that only users with a de-encryption code or “key” may view the content.

[0007] By controlling which users are allowed to view content, cable and satellite broadcasters are able to charge users based on the content that the viewer wishes to receive. For example, cable and satellite providers often charge a set periodic fee, normally a monthly fee, for a content package. Each content package contains a specified number of channels to which the user is given access for a set fee. In addition, cable and satellite broadcasters can charge users to see a single program. In other words, if a user wants to see a specific movie, he or she can order the movie on a “pay-per-view” basis.

[0008] Such present day conventional televisions use, for example, National Television Standards Committee (“NTSC”) or Phase Alternating Line (“PAL”), system signals, and provide fairly good color pictures if receiving conditions are good. Such pictures, however, do not come close to having the sharpness, realism and visual impact as might be found, for example, in a motion picture film or a magazine-quality picture. To provide dramatically better television picture quality, experimental studies have been performed and components have been developed in an attempt to provide digital television pictures that approach the quality of a 35-millimeter color film. Such high-resolution television had been deemed especially advantageous for use, for example, in wide-screen theater and home television projection, and for theatrical motion picture production and projection using magnetic tape instead of film.

[0009] Several High-definition Digital Television, i.e., “HDTV” systems have already been proposed, the parameters of which are generally disclosed in a number of articles. In such systems, the lines per frame range from 1023 to 2125, the aspect ratios (picture width to picture height) range from 4:3 to 16:9 and luminance bandwidths range from 20 to 50 MHz. Recommendations have been made that an HDTV signal should be capable of standards conversions that would provide service to NTSC, PAL and Sequential Color with Memory (“SECAM”) services.

[0010] Other techniques labeled as either high-definition or high-resolution television systems have modified the transmission of the conventional television signal to, for example, provide increased horizontal line resolution or better luminance resolution with less objectionable sub-carrier pattern.

[0011] Yet still another technique for improving the horizontal and vertical definition and reducing low frequency flicker in a conventional picture involves using digital signal processing technologies. Offset sampling is used to improve horizontal definition, and a double-rate stored image readout at the receiver selects the appropriate signal portions to subjectively increase the vertical definition and reduce low frequency (25 Hz) flicker.

[0012] Because of these efforts, high-definition digital television signals may eventually be delivered as the standard throughout the United States.

[0013] Like a standard television signal, an HDTV signal may be broadcast over radio frequency (“RF”) airwaves, cable or satellite. However, to view an HDTV broadcast, users must buy an HDTV display and HDTV tuner. HDTV sets are prohibitively expensive for many users when compared to standard television sets.

[0014] Simultaneously with the developments in high definition television, there has been an explosion in use and delivery of information, images, etc. through the Internet. As Internet broadband applications have grown, there has been a convergence between the Internet and conventional television. Thus, it is foreseen that eventually conventional television programming and permutations thereof, will be delivered to consumers through the Internet directly via broadband connectivity onto their computer monitor.

[0015] In addition, techniques are being developed to increase user control over the display of media content. One system currently available under the brand name “Tivo™ receives a standard television signal, simultaneously stores and displays the signal, and accepts user inputs such that the broadcast signal may be paused, rewound, or replayed based on user inputs. The system converts a standard television signal into Moving Pictures Experts Group (“MPEG”) format and parses the MPEG stream into video and audio components. The audio and video components are stored and then reassembled and decoded for delivery to a television receiver for display. The system accepts inputs from a user which controls when the stored, disassembled MPEG stream is reassembled, decoded and displayed. Such a system is described in U.S. Pat. No. 6,233,389, which is hereby incorporated in its entirety by reference. However, this technique is not applicable to a digital media environment.

[0016] In addition, current content distribution methods do not provide adequate control to send specific content information to specific users and to control the viewing permissions of content information and content. With increased availability of content, it has become more difficult for users to search through content to determine which content is interesting and available to them. These and other problems are avoided and numerous advantages are provided by the system and method described herein.

SUMMARY OF THE INVENTION

[0017] In accordance with the invention, systems and methods for delivering a television program guide are provided. The invention organizes content information based on user subscription information and sends the content information to the user.

[0018] In one aspect, a first server establishes a database including content information and user subscription information. The term “content” refers to any electronic file or application, including video, audio, datacast, video games, and other computer programs. “Content information” includes content titles, times that the content is available for viewing, descriptions of the content and trivia or news about the content. The first server organizes content information for each user based on the user subscription information and sends the content information to the user

[0019] In another aspect, the first server requests updated content information from a second server. Preferably, the first server periodically requests updated content information from the second server.

[0020] In yet another aspect, the server receives user requests for content information.

[0021] In still another aspect, the content information includes links. By “link” it is meant a selectable connection from one word, picture, or information object to another such as a hypertext link.

[0022] In another aspect, the user subscription information includes access permission indications to the content information. The access permission indications include access granted or access denied flags for content information for each user. The server sends the content information to the user terminal if the user has an access granted flag. In one embodiment, content is sent to the user terminal if the user subscription information includes an access granted flag. In another embodiment, the access permission indications include a tag. In yet another embodiment, content is sent to a user terminal, including an access permission indication. If the content includes an access granted flag, the content is displayed at the user terminal.

[0023] As used herein, the term “tagging” means a marker inserted or embedded into data or into the packet ID. A packet can be tagged with various types of information, including the serial number(s) of users who have the ability to view the content of the packets. A “packet” is a short block of data transmitted in a packet switching network environment and includes a packet identifier or “packet ID.” “Packet switching” is a protocol in which data bits are organized in packets before it is routed. Each packet is then transmitted individually and can follow different routes to its destination. Once all the packets forming a message arrive at the destination, they are recompiled into the original data. The destination of the data is contained in the packet ID. When reassembled, the packets include content. A user serial number is an identification code corresponding to a particular user's terminal. The user terminal can read the packet if the user serial number is specified. The packets include a datacast. The packets may be in motion picture expert group (“MPEG”) format. The user terminal may be a personal computer or a set top box. The packets may be broadcast by radio frequency (“RF”)cable, or satellite.

[0024] The invention provides control over content and content information sent to a user from a server in communication with a user terminal by a web portal. The server sends content information to a user terminal based on the user subscription information. Access permission indications, including an access granted or access denied flag, are provided. The content information or the content itself is sent only if access permission is granted. Alternatively, the content information or content may be viewed by the user at the user terminal only if access permission is granted.

[0025] These and other advantages will become apparent to those of ordinary skill in the art with reference to the detailed description and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0026]FIG. 1 is a block diagram of an embodiment of a system.

[0027]FIG. 2 is a block diagram of a network of user terminals connected by the Internet to the server.

[0028]FIG. 3 is a block diagram of an embodiment of a system.

[0029]FIG. 4 is a flow diagram of an embodiment of the user terminal showing steps fro receiving, viewing, and recording content.

[0030]FIG. 5 is a block diagram of the encryption elements.

[0031]FIG. 6 is a block diagram of the decryption elements.

[0032]FIG. 7 is a block diagram of an embodiment of a system.

[0033]FIG. 8 is a flow diagram of an embodiment of a user terminal.

[0034]FIG. 9 is a flow diagram of an embodiment of a program guide.

[0035]FIG. 10 if a flow diagram of an embodiment of a program guide.

DETAILED DESCRIPTION

[0036] Systems and methods are provided for controlling content information sent to a user. An embodiment according to the present invention includes controlling content and content information sent to a user. Digital content information and content are sent in packets, which include a packet ID and content. The packet ID is tagged, or marked with a packet tag by a broadcaster or other computer server to enable specific users to view the content. The packets are sent by either a computer server or a broadcaster to the user terminal. The “packet tag” is an identifier that marks and identifies the content associated with the packet. The packet tag may also include information about the user terminal to which it is sent, such as a user serial number associated with the user terminal. The packet tag is used by software applications, or “modules,” for controlling the content at the user terminal. The software applications enable user viewing permissions according to the packet tags, which may include providing access to a decryption algorithm if the user serial number is included in the tag, and recording information about the content if the content is viewed or read by the user terminal.

[0037] As used herein, a “module” refers to a software program, application, routine, or subroutine, or a programmable processor or chip. As would be understood by one of ordinary skill in the art, modules may be configured in many combinations to accomplish the same function. For example, an example of a software module is any block of code that may be logically grouped together and may or may not use the conventional subroutine interfaces as defined by typical programming languages. A program routine or subroutine is generally understood as a stylistic convention of programming, and thus different routines or subroutines may be written in multiple combinations and accomplish the same function. As used herein, a “module” includes any block of code or programmable processor or chip having a function that may be logically grouped together regardless of whether conventional subroutine interfaces as defined by typical programming languages are used or specific processors or chip configurations are used.

[0038]FIG. 1 is a block diagram of a system according to the invention. The system includes a broadcast station 11. The broadcast station 11 sends content to a user terminal 13. The content is broken into packets, each having a packet ID containing a destination address, and sent to the user terminal 13. The content includes any electronic file or application, including video, audio, datacast, video games, and other computer programs. Preferably, the content is in motion picture expert group (“MPEG”) format. As used herein, “MPEG” includes any version of MPEG format, including MPEG2 format.

[0039] The user terminal 13 includes a hardware serial number that identifies the hardware included in the user terminal 13. The user terminal 13 is in communication with a web portal to the Internet 15. The user terminal 13 is a personal computer (“PC”) or a set top box or other electronic device for receiving content. In addition, any computer network such as a local area network (“LAN”) or wide area network (“WAN”) may be substituted for the Internet 15.

[0040] The user terminal 13 is in communication with a server 17 through the Internet 15. As will become better understood by the following discussion, the server contains information about users such as user serial numbers and subscription information. The subscription information includes the content ordered by the user, for example, specific channels, “pay-per-view” programs, or video games. The subscription information also includes whether the user has paid for the content or is past due on payments.

[0041] Alternatively, content may be sent by other means, for example, cable TV (“CATV”), satellite TV (“SATV”), or the world wide web.

[0042]FIG. 2 is a block diagram of a network of user terminals 13 a-13 n connected by the Internet 15 to the server 17. The server 17 is in communication with a network console 21. The network console accepts inputs from an administrator. The inputs include user information and content information.

[0043]FIG. 3 is a detailed block diagram of an embodiment of a system in accordance with the invention. The user terminal 13 is in communication with the server 17 through the Internet 15.

[0044] The server 17 includes a serialization module 45. The serialization module 45 includes a list of the user serial numbers, and information about each serialized receiver. The serialization module 45 performs authorization checks by checking if the user serial number corresponds to a user that has access to certain content or content information. The subscription management module 47 contains user information. The user information includes the subscription ordered or paid for by the user and a corresponding user serial number. The server 17 also includes a process request module 49 and an execute request module 51. The process request module 49 receives requests from a user or an administrator to enable or disable content viewing permissions. The process request module 49 includes processing payment information, such as credit card sales, from the user. The execute request module 51 performs the users request if the user has properly paid for the requested service. The execute request module 51 sends information to the user terminal 13 through the Internet 15. The information sent by the execute request module 51 includes content schedules and user viewing permission enablement information. The processing and execution of requests will be better understood by the following discussion.

[0045] The server 17 is in communication with a secondary server 31. The execute request module 51 obtains information regarding schedules and user viewing information from a secondary server 31. The secondary server 31 may be included in the same physical server machine as the server 17 or the secondary server 31 may be a separate machine. The secondary server includes an encryption control module 31, a remote on/off module 55, a data mining module 57, and an application branding module 59. The secondary server may include other modules 63.

[0046] The encryption control module 31 sends encryption keys to the user terminal 13 to enable viewing permissions. For example, the user requests a specific program (“content”), and sends this information to the process request module 49. The execute request module 51 requests the appropriate encryption keys from the encryption control module 31 to enable the user viewing permission. The execute request module 51 sends the appropriate encryption key to the user terminal 13. Preferably, the encryption key includes the user serial number such that the encryption key only works if used by the user terminal corresponding to the user serial number.

[0047] The remote on/off module 55 sends information to the user terminal 13 to turn viewing permission on or off remotely. For example, an administrator can terminate a user's viewing permission by entering the request into the process request module 49. The execute request module 51 communicates with the remote on/off module 55 to turn off all of the user's viewing permissions. The remote on/off module communicates with the user terminal 13 via the Internet or via a datacast to either delete content files, delete applications for viewing the content files, or to disable the encryption keys.

[0048] The data mining module 57 receives information about user viewing habits and subscription information and searches for relationships among the data collected. The data mining module 57 may use conventional analysis techniques to monitor data collected. For example, when the user views specific content from the user terminal 13, information about the content viewed is sent to the server 17 by the Internet 15 and stored by the server 17. The information about the content viewed includes the content and the time the content was viewed. This information may be collected about many user terminals. The data mining module 57 receives the information and analyzes it for relationships. For example, the data mining module 57 might determine that users who view stock car races regularly are also likely to view a high number of symphony concerts. This information could be of interest to advertisers, who might have been unaware of the correlation between stock car racing and symphony concert viewers. Based on such a correlation, advertisers may decide to advertise stock car racing and related merchandise during symphony concert broadcasts.

[0049] The application branding module 59 communicates branding information to the user terminal 13. The branding information includes which commercials should be sent to the user terminal 13 and which advertisements should be displayed on the user terminal 13. The branding information may be based on instructions from an administrator to the server 17 and can include correlations derived from the data mining application 57. For example, an administrator can input a request to the process request module 49 to have a banner offering stock car racing merchandise for sale displayed on the user terminal 13 if the user watches more than a predefined number of stock car races.

[0050] The server may include other modules 63 for processing and analyzing data received from the user terminal 13.

[0051] The user terminal 13 displays a graphical user interface (“GUI”) 33 which displays information to a user and receives inputs from a user. The user terminal includes a scheduling module 37. The scheduling module 37 includes information about the content sent to the user terminal 13 and a display mechanism for showing schedules of content on the GUI 33. The content information includes the schedule of content, descriptions of content, and related web sites. The display mechanism shows a schedule of content on the GUI 33 and may include links to web sites related to the content displayed.

[0052] The viewing module 39 displays content to the user on a display or GUI 33. Content, which comprises tagged packets, is viewed by the viewing module 39, and the packet information is sent from the user terminal 13 to the server 17 by the Internet 15. As previously discussed, information about the viewed content may be analyzed by the server 17, and more specifically, by the data mining module 57.

[0053] The organizing module 41 organizes content based on user specifications. For example, the user may enter a request through the GUI 33 to see a schedule of every stock car race available. The organizer module 47 would display such a schedule.

[0054] The customizing module 43 customizes the content based on user specifications. The customizing module accepts inputs from the user to define search and query functions. For example, a user can define criteria and the customizing module 43 will search the content information for content that matches the user-defined criteria.

[0055] The tuner module 44 tunes broadcasts received by the user terminal 13. Tuning refers to choosing a particular channel or specific content to be downloaded or received by the user terminal 13. The tuner module is described in greater detail in FIG. 8 and the accompanying discussion.

[0056] The user terminal 13 may include additional modules 61 for controlling and viewing content.

[0057]FIG. 4 is a flow diagram of an embodiment of the user terminal 13 showing steps for receiving, viewing, and recording content. The user terminal 13 includes a GUI 33. Analog content 93 is received and decoded at step 95. The analog content 93 is then viewed at step 97. Digital content 73 is also received by the user terminal 13. The user can input instruct the GUI to either view the digital content 73 at step 75, record the digital content 73 at step 77, “time shift” the digital content 73 at step 79, or playback the recorded digital content 73 at step 81. The user chooses the input options from a menu displayed by the GUI. The user chooses either step 75, 77, 79, or 81 by entering an option into the menu from a keyboard, touch sensitive screen, or mouse.

[0058] If the user instructs the GUI 33 to view digital content at step 75, the signal is decoded at step 91 and viewed at step 97. If the user instructs the GUI 33 to record digital content at step 77 or to time shift the content at step 79, the content is encrypted at step 83 and stored as a file in file storage 85. When the user instructs the GUI 33 to play back the content at step 81, the content is retrieved from file storage 85 and decrypted at step 87. The decrypted file is digitally decoded at step 91 and viewed at step 97. Alternatively, the encryption and decryption at steps 83 and 87, respectively, may be omitted. If the encryption and decryption steps are omitted, the content is stored as a file in file storage 85 without being encrypted at step 83. Unlike the methods and systems described in U.S. Pat. No. 6,233,389, the content is not parsed into audio and video signals. The file is decoded at step 91 without being decrypted at step 87 and viewed at step 97, subject to the user's choice in input options to view the digital content 73 at step 75, record the digital content 73 at step 77, “time shift” the digital content 73 at step 79, or playback the recorded digital content 73 at step 81.

[0059]FIG. 5 is a block diagram of the encryption elements. A tuner 101 receives content, preferably from a broadcaster. An example of a tuner for receiving content on a PC is a digital television PC (“DTVPC”) card such as a DTVPC card available under the trade name Janus. The signal is sent to a demodulator 103 where it is downloaded into a bit stream. The bit stream is put in a wrapper 105. A wrapper is data that precedes or frames the main data or program. The wrapper sets up another program so that the data can be read or so that the program can run successfully.

[0060] The bit stream is sent as input to a capture filter 107. The capture filter 107 identifies bits from the demodulator 103 before sending the bits to the appropriate destination. The bits are recorded or capture by a capture bit stream module 109. Bits are removed from the bit stream by a remove bits module 111. By the term “removed,” it is meant that bits are scrambled according to the encryption algorithm.

[0061] An encryption algorithm module 113 retrieves an encryption algorithm from electronic programmable read only memory (“EPROM”) 115. As would be understood by one of ordinary skill in the art, EPROM is typically included on a processor. In the embodiment illustrated in FIG. 5, EPROM is included on the user terminal. The encryption algorithm module 113 encrypts the files, which are then sent to a Peripheral Component Interconnect (“PCI”) 117 for storage on a hard drive 119.

[0062]FIG. 6 is block diagram of the elements of the decryption process. The encrypted files are retrieved from the hard drive 119 through a PCI 117. The wrapper 105 is removed by the following elements. The encrypted files are sent as input to a capture filter 107. The capture filter 107 identifies bits from the point of origin, such as a storage medium, before sending the bits to a destination, such as a decoder. The decryption algorithm restoration module 121 retrieves the decryption algorithm from the EPROM 115. The bits are re-inserted by the re-insert bits module 123. By the term “re-insert,” it is meant that bits are unscrambled, or placed back in the order of the bit stream prior to encryption.

[0063] A DTV decode module 125 decodes the decrypted bits into audio bits 131,video bits 129 and data bits 127. The audio bits 131,video bits 129 and data bits 127 may be viewed at the user terminal.

[0064]FIG. 7 is a block diagram of an embodiment of the system. Content, “video-on-demand” 201, computer games 203, and other types of software 205 are sent by an Internet connection to a server 17. Alternatively, the video-on-demand” 201, computer games 203, and other types of software 205 may be sent to a broadcaster 11. The video-on-demand” 201, computer games 203, and other types of software 205 is then sent to the user terminal 13 from the server 17 by an Internet connection, or from the broadcaster 11 by terrestrial means. Terrestrial means includes cable, satellite, and radio frequency (RF) signals.

[0065] The server 17 includes a header encryption module for encrypting the content into encrypted packets. The server 17 and the broadcaster 11 are in communication by an Internet connection. Therefore, the encrypted packets may be transferred from the server 17 directly to the user terminal 13, or the encrypted packets may be sent to the broadcaster 11 and then sent to the user terminal 13.

[0066] The user terminal 13 is in communication with a decryption module 213. The decryption module 213 decrypts the packets such that the user can view the “video-on-demand” 201, computer games 203, and other software 205. Preferably, the header encryption includes a tag with the user serial number. The decryption module 213 checks the header encryption for the tag with the user serial number. If the user serial number is not included in the tag, the decryption module 213 does not decrypt the packet. Alternatively, the decryption module 213 can delete packets that do not include a tag with the user serial number.

[0067]FIG. 8 is a flow diagram of an example of the user terminal's processing of content packets through the tuner module. The relationship of the tuner module 44 in a system is depicted in FIG. 3. At step 141, the user terminal receives encrypted, tagged packets. The tag includes the serial numbers for users who have permission to view the content in the packet. The user terminal receives user input choosing which content to view or record at step 143. The user input may be received through conventional means, such as a GUI, keyboard, mouse, or touch screen. The input is received by the tuner module.

[0068] The tuner module checks the packet ID tag for the serial number of the user terminal at step 145. If the user serial number is not in the packet ID tag, the tuner module ends at step 155 without displaying or recording the content associated with the packet.

[0069] If the user serial number is in the packet ID tag, the tuner module de-encrypts the packet at step 147, reassembles the packet bits at step 149, and displays the packet at step 151. At step 153, the tuner module sends the user serial number and packet information to the server. The packet information includes the information identifying the content associated with the packet and the time at which the user viewed the content. The tuner module is finished at step 155.

[0070]FIG. 9 is a flow diagram of an embodiment of a program guide. A server in communication with a user (such as the server 17 as shown in FIG. 1) has a database of content information. “Content information” or “data” includes content titles, times that the content is available for viewing, descriptions of the content and trivia or news about the content. The content information may be in the form of web site links. The database also includes subscriber information. The subscriber information includes subscriber names, account information, credit card numbers, and whether the subscription is active and paid up-to-date.

[0071] The server receives a request from a user for a program guide download at step 301. Preferably, the user request includes the dates for which the user wishes to receive information. The user request may also include specific content for which the user wishes to receive information. The user request may be initiated by the user, for example, the user may choose information for the request from a menu. Alternatively, the user request may be sent periodically by the user terminal without any positive action from the user. The server checks the database subscriber information at step 303 for access permission indications. Access permission indications are information that determine whether the user has access to specific content. In the embodiment shown in FIG. 9, a valid account authorization, such as via credit card number and an active subscription status for the user making the request is information that determines that the user has access to the requested content. Access permission indications may include either an access granted or an access denied flag. An access granted or an access denied flag is a marker notifying the server that access is either granted or denied. The access granted or denied flag may be a packet tag included in content or content information sent to the user. An access granted or access denied flag may include the user serial number.

[0072] If the account is unauthorized or invalid or the subscription is not valid, the user request is rejected at step 305. If the user request is rejected, preferably the server sends the user a notice, for example, an email message informing the user that the user does not have access to the requested information.

[0073] At step 307, the server determines if the information or data requested is currently available from the server. If the information is available, the server downloads the requested data to the user at step 319 and timestamps the user's subscription information with the date of the download.

[0074] If the information is not available, the server downloads content information from a third party data source server periodically at step 309. The data source server is in communication with the server and contains updated content information. The data source server may be a secondary server such as the secondary server 31 shown in FIG. 3. Preferably, the server updates content from the data source server in six hour increments at step 309. If new data is not available, a message, such as an email message, is sent to the user terminal informing the user that the information is not available.

[0075] If new information is available at step 309, the server checks at step 313 to see if there are any errors in the data. Examples of errors in data include: 1) all channels not available, 2) incomplete program data, 3) data in invalid format. If there is an error in the data, the server stops the retrieval process and sends a message, such as an email message, to the user at step 315 to inform the user of the error.

[0076] If there are no errors in the data at step 313, the data is stored on the server. The server sets a flag that the information is available. The information is then downloaded at step 319.

[0077]FIG. 10 is a flow diagram of data download for a program guide. A server in communication with a user (such as the server 17 as shown in FIG. 1) has a database of content information. The database also includes subscriber information.

[0078] The server scans the database of subscribers to determine if a new subscriber has been added at step 331. If there are no new subscribers, the server proceeds to step 341, described below. If there is a new subscriber, the server sends subscription information to a data source server at step 333. The data source server may be a secondary server such as the secondary server 31 shown in FIG. 3. The data source server sends content information to the server. If there is an error in the data at step 335, the server stops the retrieval process and sends the user a message, such as an email message, informing the user that an error has occurred.

[0079] If there are no errors in the data, the server stores the data on the server for future download to the user terminal and sets a flag indicating that the data is available at step 339.

[0080] At step 341, the server checks the date when data was last “fetched” or downloaded from the data source server for each subscriber to determine if new data is available from the data source. At step 343, the server retrieves all new available content information and stores it on the server. The content information can then be downloaded or sent to the user terminal by the process described in FIG. 9. The process described in FIG. 10 goes to “sleep” mode in step 345.

[0081] It will be apparent to those with skill in the art that there are many alterations that may be made in the embodiments of the invention described above without departing from the spirit and scope of the invention. For example, there are many ways that circuits and electronic elements may be combined to implement the system and method described herein in various systems and hardware environments. There are similarly many ways that independent programmers might provide software to provide the functionality associated with the present invention as taught herein without departing from the spirit and scope of the invention.

[0082] Having thus generally described the invention, the same will become better understood from the following claims in which it is set forth in a non-limiting manner. 

1. A method for delivering a personal television program guide, comprising: establishing a database on a first server, wherein the database includes content information and user subscription information for one or more users; organizing the content information for each user based on the user subscription information; and sending the content information to the user at a user terminal.
 2. The method of claim 1, further comprising: requesting updated content information from a second server.
 3. The method of claim 2, wherein the updated content information is requested periodically.
 4. The method of claim 1, further comprising: receiving a user request for content information.
 5. The method of claim 1, wherein the content information includes links.
 6. The method of claim 1, further comprising: receiving criteria from a user terminal; and searching the database for content information matching the criteria.
 7. The method of claim 1, wherein the user subscription information includes access permission indications to the content information, wherein the access permission indications include either an access granted flag or an access denied flag; further comprising: sending the content information to a user terminal if the user subscription information has an access granted flag to the content information.
 8. The method of claim 7, further comprising: sending content to a user if the user subscription information has an access granted flag.
 9. The method of claim 7, wherein the access permission indications include a tag.
 10. The method of claim 7, wherein an access granted flag includes the user serial number.
 11. The method of claim 7, further comprising: sending content to a user; and displaying the content at the user terminal if the user subscription information includes an access granted flag.
 12. A system for delivering a personal television program guide, comprising: a first server; a database in communication with said first server, wherein said database includes content information and user subscription information; and wherein said server is configured to organize the content information for each user based on the user subscription information and the content information to a user at a user terminal.
 13. The system of claim 12 wherein said first server is further configured to request updated content information from a second server.
 14. The system of claim 13, wherein said first server is configured to request updated content information from a second server periodically.
 15. The system of claim 12, wherein said server is further configured receive a user request for content information.
 16. The system of claim 12, wherein said server is further configured to receive criteria from a user terminal and search the database for content information matching the criteria.
 17. The system of claim 12, wherein the user subscription information further comprises: access permission indications to the content information, wherein the access permission indications include either an access granted flag or an access denied flag; and wherein said first server is further configured to send the content information to a user if the user subscription information has an access granted flag to the content information.
 18. The system of claim 17, wherein said first server is further configured to send content to a user terminal if the user subscription information has an access granted flag.
 19. The system of claim 17, wherein the access permission indications include a tag.
 20. The system of claim 17, wherein an access granted flag includes the user serial number.
 21. The system of claim 17, wherein the first server is further configured to send content to a user terminal and display the content at the user terminal if the user subscription information includes an access granted flag. 